Bar code symbologies ("bar codes") are widely used for data collection. The first bar code symbologies developed, such as U.P.C., EAN, Code 39, Codabar, Interleaved 2 of 5, and Code 93 can be referred to as "linear symbologies" because data in a given symbol is decoded along one axis or direction. Linear symbologies generally encode data characters as parallel arrangements of alternating, multiple-width strips of lower reflectivity or "bars" separated by absences of such strips having higher reflectivity or "spaces." Each unique pattern of bars and spaces within a predetermined width defines a particular data character. A given linear symbol encodes several data characters along its length as several groups of unique bar and space patterns.
Newer data collection symbologies have departed from the typical linear symbologies to create stacked or area symbologies in order to increase "information density," i.e., the amount of information encoded within a given area. "Stacked symbologies" or "multi-row symbologies" employ several adjacent rows of multiple-width bars and spaces (e.g., Code 49, PDF417, etc.). "Area symbologies" or two-dimensional matrix symbologies employ arrangements of regular polygonal data cells where the center-to-center distance of adjacent cells is uniform (e.g., MaxiCode, Code One, Data Matrix, Aztec Code, etc.).
Currently available scanning readers read linear symbologies typically by illuminating a small region of a target object with a narrow collimated beam and scanning the beam back and forth across the target object. Light from the scanned beam is reflected back to a light sensor within the reader that produces a profile based upon the light reflected from the linear symbol. The profile is generally an analog signal representing the modulated light reflected from the spaces and absorbed by the bars in the linear symbol and thereby represents the pattern of bars and spaces in a given linear symbol. The analog profile is then converted to a digital signal that is processed to identify the characters within the linear symbol. The sensor may be a simple "point-type" photodetector or may be a linear charged coupled device ("CCD"). Such devices can operate very quickly and have substantial depth of field.
Reading stacked symbologies with scanning beam-type detectors typically involves a raster scanning approach where the beam is scanned horizontally across the target object at a series of subsequent vertical locations. For each sweep, the sensor output is converted to a digital signal. The digital signal is then mapped into a two-dimensional character array and processed to decode the symbol or symbols. The optics for raster scanning a collimated beam can be complex and relatively costly. Moreover, such raster scanning can be time consuming, and, during the time the raster scanning is ongoing, a user may shift the reader. The reader will then have an incorrect indication of the relative locations of light and dark regions, thereby impairing decoding.
To overcome such problems, two-dimensional readers have been proposed that employ two-dimensional semiconductor arrays, Vidicons, or other suitable light-receiving elements that image an entire two-dimensional area substantially simultaneously. Due to optical limitations inherent in such imaging devices, these readers have a relatively small depth-of-field within which symbols can be read. To increase the reader's depth-of-field, some two-dimensional dimensional readers employ autofocus systems. Autofocus systems can be costly and relatively slow. Moreover, even readers with autofocus systems are limited by the depth-of-field of the autofocus system. Additionally, even when reading linear or stacked symbologies, such systems employ relatively complex area-type processing for finding, identifying and decoding. The complexity of such processing makes these readers undesirably slow for many linear and stacked symbology applications.